package com.example.jedis.util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

//jedis本身线程不安全, 频繁的创建和销毁连接会有性能损耗, 所以一般使用连接池管理jedis
public class JedisConnectionFactory {
    private static final JedisPool jedisPool;

    static {
        //配置连接池
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();

        jedisPoolConfig.setMaxTotal(8);//创建最大连接数

        jedisPoolConfig.setMaxIdle(8);//设置最大空闲连接

        jedisPoolConfig.setMinIdle(0);//设置最小空闲连接

        jedisPoolConfig.setMaxWaitMillis(1000);

        //创建连接池对象
        jedisPool = new JedisPool(jedisPoolConfig,
                "192.168.88.100", 6379, 1000, "1234");
    }

    public static Jedis getRedis(){
        return jedisPool.getResource();
    }
}
